<?php
/**/
include_once("shav_config.php");

class SHAV_XML
{
	var $xmlContent = '';		//Текст полученный в результате работы функций класса для выводна в файл или окно браузера
	var $encoding = 'utf-8';	//Кодировка содержимого.

	/*Конструктор класса*/
	function SHAV_XML($encoding = 'utf-8')
	{
		$this->encoding = $encding;
	}

	/*Создаем XML из массива*/
	function createXMLFromArray($prmArray = array())
	{
		$this->xmlContent  = '<?xml version="1.0" encoding="'.$this->encoding.'"?>';
		$this->xmlContent .= '<root>';
		$this->xmlContent .= $this->createXMLItems($prmArray);
		$this->xmlContent .= '</root>';
	}

	/*Создание XML из SQL-запроса*/
	function createXMLFromSQL($query = '')
	{
		global $shavDB;

		$results = $shavDB->get_results($query);

		//DrawObject($results);

		$this->xmlContent  = '<?xml version="1.0" encoding="utf-8"?>';
		$this->xmlContent .= '<root>';
		$res = array();
		foreach($results as $key=>$value)
		{
			$res['item_'.$key] = $value;
//			$this->xmlContent .= $this->createXMLItems($rec);
		}
		$this->xmlContent .= $this->createXMLItems($res);
		$this->xmlContent .= '</root>';
	}

	/*Вывод XML данных*/
	function drawXMLContent()
	{
		echo $this->xmlContent;
	}

	/*Сохраняем данные в файл*/
	function saveToFile($url)
	{
		$dir = dirname($url);

		if(file_exists($dir))
		{
			if(is_writable($dir))
			{
				file_put_contents($url, $this->xmlContent);
			}
			else
			{
				echo ERROR_FILES_0002;
			}
		}
		else
		{
			mkdir($dir);
			file_put_contents($url, $this->xmlContent);
		}
	}

	/*Создаем список всех параметров и значений*/
	private function createXMLItems($data = array())
	{
		$content = '';
		foreach($data as $key => $value)
		{
			if(is_array($value))
				$content .= '<'.$key.'>'.$this->createXMLItems($value).'</'.$key.'>';
			else
				$content .= '<'.$key.'>'.strip_tags($value).'</'.$key.'>';
		}

		return $content;
	}
}
?>